package com.hsjk.szwj.module.member.convert.user;

import com.hsjk.szwj.framework.common.pojo.PageResult;
import com.hsjk.szwj.module.member.api.user.dto.MemberUserRespDTO;
import com.hsjk.szwj.module.member.controller.admin.user.vo.AdminMemberDetailInviterMemberRespVO;
import com.hsjk.szwj.module.member.controller.admin.user.vo.AdminMemberDetailRespVO;
import com.hsjk.szwj.module.member.controller.admin.user.vo.AdminMemberRespVO;
import com.hsjk.szwj.module.member.controller.app.user.vo.AppUpdateMemberReqVO;
import com.hsjk.szwj.module.member.controller.app.user.vo.AppUserInfoRespVO;
import com.hsjk.szwj.module.member.dal.dataobject.user.MemberUserDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper
public interface UserConvert {

    UserConvert INSTANCE = Mappers.getMapper(UserConvert.class);

    AppUserInfoRespVO convert(MemberUserDO bean);

    MemberUserRespDTO convert2(MemberUserDO bean);

    List<MemberUserRespDTO> convertList2(List<MemberUserDO> list);

    PageResult<AdminMemberRespVO> convertAdminMemberPage(PageResult<MemberUserDO> memberUserDOPageResult);

    AdminMemberDetailRespVO convertAdminMemberDetailRespVO(MemberUserDO memberUserDO);

    AdminMemberDetailInviterMemberRespVO convertAdminMemberDetailInviterMemberRespVO(MemberUserDO memberUserDO);

    MemberUserDO convertMemberUserDO(AppUpdateMemberReqVO reqVO);
}
